<?php

/**
 * This file is part of PHPPresentation - A pure PHP library for reading and writing
 * presentations documents.
 *
 * PHPPresentation is free software distributed under the terms of the GNU Lesser
 * General Public License version 3 as published by the Free Software Foundation.
 *
 * For the full copyright and license information, please read the LICENSE
 * file that was distributed with this source code. For the full list of
 * contributors, visit https://github.com/PHPOffice/PHPPresentation/contributors.
 *
 * @see        https://github.com/PHPOffice/PHPPresentation
 *
 * @license     http://www.gnu.org/licenses/lgpl.txt LGPL version 3
 */

declare(strict_types=1);

namespace PhpOffice\PhpPresentation\Tests\Style;

use PhpOffice\PhpPresentation\Style\ColorMap;
use PHPUnit\Framework\TestCase;

class ColorMapTest extends TestCase
{
    public function testConstruct(): void
    {
        $object = new ColorMap();
        self::assertIsArray($object->getMapping());
        self::assertEquals(ColorMap::$mappingDefault, $object->getMapping());
    }

    public function testMapping(): void
    {
        $object = new ColorMap();
        self::assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\ColorMap', $object->setMapping([]));
        self::assertIsArray($object->getMapping());
        self::assertCount(0, $object->getMapping());
        $array = ColorMap::$mappingDefault;
        self::assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\ColorMap', $object->setMapping($array));
        self::assertIsArray($object->getMapping());
        self::assertEquals(ColorMap::$mappingDefault, $object->getMapping());
    }

    public function testModifier(): void
    {
        $object = new ColorMap();
        $key = array_rand(ColorMap::$mappingDefault);
        self::assertInstanceOf('PhpOffice\\PhpPresentation\\Style\\ColorMap', $object->changeColor($key, 'AlphaBeta'));
        $array = $object->getMapping();
        self::assertEquals('AlphaBeta', $array[$key]);
    }
}
